One or more embodiments of the present invention relate to the data-processing field and, more specifically, to the management of databases.
Databases are commonly used to store large amount of data in a structured form in a data-processing system; particularly, in the case of a database of the relational type, the data is organized in tables (with rows and columns) storing related data. A quite common problem of the databases is the management of heterogeneous data. A typical scenario is the management of data representing different entities that all refer to a single subject.
In this case, the data of each entity is stored into a distinct table (possibly in addition to a table of the data of the subject). However, this causes a proliferation of the tables, which adversely affects the performance of the database.
Alternatively, it is possible to aggregate all the (heterogeneous) data into a single aggregated table. However, this requires a very high number of columns in the aggregated table (for all the heterogeneous data) and this total number of columns of the aggregated table may be more than the number of columns supported.
Most of the databases also support the definition of views on the tables. Generally, a view is a virtual table that represents selected data extracted from one or more tables. The views allow representing the data in different ways, without any substantial overhead of the footprint of the database (since only the definitions of the views, but not the corresponding data, are stored). However, the definition of the views is a complex manual task; in any case, the use of different views to represent heterogeneous data again requires an underlying aggregated table with the same drawbacks pointed out above.